1 /* JJT: 0.2.2 */
2
3 package mobisnap.mobile_trx;
4
5 /***
6 * Implements unary logical expression
7 */
8 public class ASTSQLUnaryLogicalExpression extends mobisnap.mobile_trx.SimpleNode {
9 public boolean not = false;
10 public boolean existsExpr = false;
11 public SimpleNode expr;
12
13 public ASTSQLUnaryLogicalExpression(int id) {
14 super(id);
15 }
16
17 public ASTSQLUnaryLogicalExpression( MobisnapSQL p, int i) {
18 super( p, i);
19 id = i;
20 }
21
22 /*** Accept the visitor. **/
23 public Object jjtAccept(MobisnapSQLVisitor visitor, Object data) {
24 return visitor.visit(this, data);
25 }
26
27 /***
28 * Returns the value of the expression
29 *
30 * @param msql_type Specifies which type of processing should be performed
31 * MobisnapConstants.MSQL_SERVER = 1
32 * MobisnapConstants.MSQL_TENTATIVE_CLIENT = 2
33 * MobisnapConstants.MSQL_STABLE_CLIENT = 3
34 * MobisnapConstants.MSQL_RESERVATION_CLIENT = 4
35 * MobisnapConstants.MSQL_STATIC = 10
36 * @param cond True if reservations associated iwth transaction should be
37 * propagated to the current transaction
38 */
39 public Object value( int msql_type, boolean cond) throws Exception {
40 if( existsExpr)
41 throw new UnknownValueException( "exists expression in SQLUnaryLocicalExpression");
42 Object val = expr.value( msql_type, cond);
43 if( ! not)
44 return val;
45 return MSQLTypeUtil.not( val);
46
47 }
48
49 /***
50 * Returns a simplified node, if possible (usefull in expressions)
51 *
52 * @param msql_type Specifies which type of processing should be performed
53 * MobisnapConstants.MSQL_SERVER = 1
54 * MobisnapConstants.MSQL_TENTATIVE_CLIENT = 2
55 * MobisnapConstants.MSQL_STABLE_CLIENT = 3
56 * MobisnapConstants.MSQL_RESERVATION_CLIENT = 4
57 * MobisnapConstants.MSQL_STATIC = 10
58 * @param cond True if reservations associated iwth transaction should be
59 * propagated to the current transaction
60 */
61 public SimpleNode simplify( int msql_type, boolean cond) {
62 expr = (SimpleNode)expr.simplify( msql_type, cond);
63 if( existsExpr)
64 return this;
65 try {
66 return new SimpleNodeValue( value( msql_type, cond));
67 } catch( Exception e) {
68 if( ! not)
69 return expr;
70 else
71 return this;
72 }
73 }
74 }
This page was automatically generated by Maven